package controlador;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.util.Vector;

import javax.swing.JFileChooser;

import modelo.Equipo;
import modelo.Juez;
import modelo.Nadador;
import modelo.Panamericano;

import vista.VentanaEquipo;
import vista.VentanaNadadorModeloTabla;

public class ControladorVentanaEquipo implements ActionListener {

	private VentanaEquipo ventanaEquipo;
	private Equipo equipo;
	private Panamericano panamericano;

	public ControladorVentanaEquipo(Panamericano panamericano, Equipo equipo) {
		super();
		// TODO Auto-generated constructor stub
		ventanaEquipo = new VentanaEquipo();
		ventanaEquipo.setLocationRelativeTo(null);
		ventanaEquipo.setVisible(true);
		ventanaEquipo.agregarListener(this);
		this.equipo = equipo;
		this.panamericano = panamericano;
		// cargarArchivo();
	}

	@Override
	public void actionPerformed(ActionEvent e) {
		// TODO Auto-generated method stub
		
		
		// PARA VER QUE SE GUARDAN LOS DATOS:

		String accion = e.getActionCommand();
		
		if (accion.equals("Registrar")) {
			registrarEquipo();
			
		} 
		
		else if (accion.equals("Salir"))
			ventanaEquipo.setVisible(false);
		else if (accion.equals("Cancelar"))
			ventanaEquipo.blanquearCampos();
		else if (accion.equals("Cargar"))
			cargarArchivo();
	}

	public void cargarArchivo() {
		JFileChooser fileChoser = new JFileChooser();
		int opcion = fileChoser.showOpenDialog(fileChoser);

		if (opcion == JFileChooser.APPROVE_OPTION) {
			File archivoTXT = fileChoser.getSelectedFile();
			try {
				FileReader fr = new FileReader(archivoTXT);
				BufferedReader fb = new BufferedReader(fr);
				String cedula;
				String nombre;
				String apellido;
				String fechaNacimiento;
				String sexo;
				String estilo;
				int tiempoCronometrado;

				Nadador nadador;

				String cadena;
				while ((cadena = fb.readLine()) != null) {
					cedula = cadena;
					nombre = fb.readLine();
					apellido = fb.readLine();
					fechaNacimiento = fb.readLine();
					sexo = fb.readLine();
					estilo = fb.readLine();
					tiempoCronometrado = Integer.parseInt(fb.readLine());

					nadador = new Nadador(cedula, nombre, apellido,
							fechaNacimiento, sexo, estilo, tiempoCronometrado);

					equipo.agregarNadador(nadador);

				}

				Vector<Nadador> nadadores = equipo.getVectorNadadores();
				ventanaEquipo.setListado(new VentanaNadadorModeloTabla(
						nadadores));

			} catch (IOException e) {
				e.printStackTrace();
				// Mensaje de Dialogo en caso de que ocurra una excepcion en la
				// conversion de numeros
				ventanaEquipo
						.mostrarMensaje("Debe introducir los datos correctamente");
			}
		}

	}

	public void registrarEquipo() {
	
				if (ventanaEquipo.getCodigo().equals("")
				|| ventanaEquipo.getPais().equals("")
				|| ventanaEquipo.getAnnoFundacion().equals("")
				|| ventanaEquipo.getEntrenador().equals(""))
			ventanaEquipo.mostrarMensaje("Complete todos los campos");
		else {
			String codigo = ventanaEquipo.getCodigo();
			String pais = ventanaEquipo.getPais();
			int annoFundacion = Integer.parseInt(ventanaEquipo
					.getAnnoFundacion());
			String entrenador = ventanaEquipo.getEntrenador();
			
			equipo = new Equipo(codigo, pais, annoFundacion, entrenador, 0, 0,
					0, equipo.getVectorNadadores());
			
			if (panamericano.getVectorEquipo().size() < 8 ) {
			panamericano.agregarEquipo(equipo);
			ventanaEquipo.mostrarMensaje("El Equipo de : "+ventanaEquipo.getPais()+
					", codigo: "+ ventanaEquipo.getCodigo()+ " se ha agregado satisfactoriamente.");
			ventanaEquipo.blanquearCampos();
			}
			else {
				ventanaEquipo.mostrarMensaje("Todos los equipos han sido registrados");
				ventanaEquipo.setVisible(false);
				
			
			}
	}
}
}